home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / bin / bzdiff < prev    next >
Text File  |  2009-06-29  |  2KB  |  77 lines

  1. #!/bin/sh
  2. # sh is buggy on RS/6000 AIX 3.2. Replace above line with #!/bin/ksh
  3.  
  4. # Bzcmp/diff wrapped for bzip2, 
  5. # adapted from zdiff by Philippe Troin <phil@fifi.org> for Debian GNU/Linux.
  6.  
  7. # Bzcmp and bzdiff are used to invoke the cmp or the  diff  pro-
  8. # gram  on compressed files.  All options specified are passed
  9. # directly to cmp or diff.  If only 1 file is specified,  then
  10. # the  files  compared  are file1 and an uncompressed file1.gz.
  11. # If two files are specified, then they are  uncompressed  (if
  12. # necessary) and fed to cmp or diff.  The exit status from cmp
  13. # or diff is preserved.
  14.  
  15. PATH="/usr/bin:/bin:$PATH"; export PATH
  16. prog=`echo $0 | sed 's|.*/||'`
  17. case "$prog" in
  18.   *cmp) comp=${CMP-cmp}   ;;
  19.   *)    comp=${DIFF-diff} ;;
  20. esac
  21.  
  22. OPTIONS=
  23. FILES=
  24. for ARG
  25. do
  26.     case "$ARG" in
  27.     -*)    OPTIONS="$OPTIONS $ARG";;
  28.      *)    if test -f "$ARG"; then
  29.             FILES="$FILES $ARG"
  30.         else
  31.             echo "${prog}: $ARG not found or not a regular file"
  32.         exit 1
  33.         fi ;;
  34.     esac
  35. done
  36. if test -z "$FILES"; then
  37.     echo "Usage: $prog [${comp}_options] file [file]"
  38.     exit 1
  39. fi
  40. set $FILES
  41. if test $# -eq 1; then
  42.     FILE=`echo "$1" | sed 's/.bz2$//'`
  43.     bzip2 -cd "$FILE.bz2" | $comp $OPTIONS - "$FILE"
  44.     STAT="$?"
  45.  
  46. elif test $# -eq 2; then
  47.     case "$1" in
  48.         *.bz2)
  49.                 case "$2" in
  50.             *.bz2)
  51.             F=`echo "$2" | sed 's|.*/||;s|.bz2$||'`
  52.             tmp=`mktemp "${TMPDIR:-/tmp}"/bzdiff.XXXXXXXXXX` || {
  53.                   echo 'cannot create a temporary file' >&2
  54.                   exit 1
  55.             }
  56.                         bzip2 -cdfq "$2" > "$tmp"
  57.                         bzip2 -cdfq "$1" | $comp $OPTIONS - "$tmp"
  58.                         STAT="$?"
  59.             /bin/rm -f "$tmp";;
  60.  
  61.                 *)      bzip2 -cdfq "$1" | $comp $OPTIONS - "$2"
  62.                         STAT="$?";;
  63.                 esac;;
  64.         *)      case "$2" in
  65.             *.bz2)
  66.                         bzip2 -cdfq "$2" | $comp $OPTIONS "$1" -
  67.                         STAT="$?";;
  68.                 *)      $comp $OPTIONS "$1" "$2"
  69.                         STAT="$?";;
  70.                 esac;;
  71.     esac
  72. else
  73.     echo "Usage: $prog [${comp}_options] file [file]"
  74.     exit 1
  75. fi
  76. exit "$STAT"
  77.